Instant messaging is becoming a very popular communications tool for users of computer devices. An instant messaging (IM) application (e.g., WINDOWS® Messenger system of Microsoft Corporation of Redmond, Wash., Yahoo! Messenger, AOL instant messenger (AIM), and the like) enables a user to engage in a real time conversation with one or more contacts, who are identified in the user's private list of contacts. Typically, private lists are stored on a server and a conversation is established through a switchboard, or relay server, which directs inbound messages to the appropriate recipients.
Routing real time messages through the switchboard can be slower and more costly (in terms of server resources) than instant messaging in a peer-to-peer arrangement, wherein the messages do not go through a switchboard, but pass directly to and from participants in the conversation. Thus, after a conversation is established using a switchboard server, a typical instant messaging system may attempt to convert the conversation into a peer-to-peer configuration. Converting to peer-to-peer may be done a number of ways, typically involving identifying a peer by an internet protocol (IP) address and/or port number, whereby messages can be sent directly to the peer.
However, creating a peer-to-peer conversation can be difficult if not impossible in situations involving active network devices, such as firewalls or network address translators (NATs). Such devices are used for system security, but are typically designed to prevent direct access to computers behind such devices. For example, a NAT has its own IP address, and computers behind the NAT have their own IP addresses, which are private; i.e., other computers outside the NAT may not be able to determine the IP addresses of the computers behind the NAT. The IP address of a message received by the NAT is translated to the IP address of the recipient computer behind the NAT. Various techniques may be applied to tunnel through or traverse an active network device to form a direct connection.
As instant messaging systems improve, they typically provide more features, besides text, that make the conversation a richer experience. For example, an instant messaging system may allow a user to transmit audio, video, or a custom user tile (also referred to as a Display Picture) uniquely associated with the user. Such features typically require more resources, such as transmission bandwidth, than text to include in a conversation. Thus, a peer-to-peer connection is desirable when carrying on an instant messaging conversation because peer-to-peer typically provides higher performance than a connection through a switchboard server.